const app = getApp();

function request(options) {
    return new Promise((resolve, reject) => {
        // 中间件逻辑
        if (!isUserAuthenticated()) {
            reject({ error: 'User not authenticated' });
            return;
        }

        const defaultOptions = {
            header: {
                'Content-Type': 'application/json',
                'Authorization': `Bearer ${app.globalData.token}`
            },
        };

        const finalOptions = Object.assign({}, defaultOptions, options);
        wx.request({
            ...finalOptions,
            success(res) {
                if (res.statusCode == 401) {
                    wx.navigateTo({
                        url: `/pages/login/login`
                     });
                     return
                }
                if (res.data.code === 0) {
                    resolve(res);
                } else {
                    //reject(res.data.msg);
                    wx.showToast({
                        title: res.data.msg,
                        icon: 'none'
                    })
                }
            },
            fail(err) {
                //reject(err);
                wx.showToast({
                    title: err,
                    icon: 'none'
                })
            }
        });
    });
}

// 检查用户是否认证的示例函数
function isUserAuthenticated() {
    // 在这里实现你的认证逻辑，例如检查 token 是否有效
    return true; // 返回 true 或 false
}

module.exports = {
    request
};
